import request from "@/utils/request";

// 创建商品的数据类型
export interface CreateProductDto {
  pName: string; // 商品名称
  pBrand: string; // 商品品牌
  pType: string; // 商品类型
  pSpecifications: string; // 商品规格
  pPrice: string; // 商品价格
  pIntroduce?: string; // 商品简介
  pNumber: string; // 商品数量
  pImgUrl: string; // 商品图片
  pLink?: string; // 商品链接
  deliveryDays?: string; // 交货时间
  isActive?: boolean; // 商品是否激活
  categoryId: string; // 分类ID
}

// 查询商品列表的参数类型
export interface ListQueryDto {
  keyword?: string; // 关键字
  page?: number; // 页数，默认1
  pagesize?: number; // 每页条数，默认10
}

// 更新商品的数据类型
export interface UpdateProductDto extends Partial<CreateProductDto> {}

// 批量删除参数类型
export interface BatchDeleteDto {
  ids: string[]; // 要删除的商品ID数组
}

export default {
  // 文件上传
  fileUpload(data: object) {
    return request({
      url: "/file/fileUpload",
      method: "post",
      data: data,
    });
  },

  // 批量文件上传
  batchFileUpload(data: object) {
    return request({
      url: "/file/batchUpload",
      method: "post",
      data: data,
    });
  },

  // 创建商品
  addProduct(data: CreateProductDto) {
    return request({
      url: "/product/add",
      method: "post",
      data: data,
    });
  },

  // 获取商品列表（分页查询）
  getProductList(params: ListQueryDto = {}) {
    return request({
      url: "/product/tableList",
      method: "get",
      params: params,
    });
  },

  // 获取单个商品详情
  getProduct(id: string) {
    return request({
      url: `/product/${id}`,
      method: "get",
    });
  },

  // 更新商品
  editProduct(id: string, data: UpdateProductDto) {
    return request({
      url: `/product/${id}`,
      method: "patch",
      data: data,
    });
  },

  // 删除商品
  deleteProduct(id: string) {
    return request({
      url: `/product/${id}`,
      method: "delete",
    });
  },

  // 批量删除商品
  batchDeleteProducts(data: BatchDeleteDto) {
    return request({
      url: "/product/batch-remove",
      method: "delete",
      data: JSON.stringify(data), // 手动序列化为JSON字符串
      headers: {
        "Content-Type": "application/json",
      },
      transformRequest: [], // 跳过全局的transformRequest
    });
  },

  // 批量上传商品
  batchUploadProducts(data: FormData) {
    return request({
      url: "/product/import-excel",
      method: "post",
      data: data,
      headers: {
        "Content-Type": "multipart/form-data",
      },
    });
  },

  // 下载商品导入模板
  downloadTemplate() {
    return request({
      url: "/product/download-template",
      method: "get",
      responseType: "blob", // 重要：设置响应类型为blob
    });
  },

  // 获取商品分类列表
  getCategoryList() {
    return request({
      url: "/category/list",
      method: "get",
    });
  },
  // 产品需求详情
  getSelfProductDetail(id: string) {
    return request({
      url: `/product-requirement/${id}`,
      method: "get",
    });
  },
  updateSelfProduct(id: string, data: any) {
    return request({
      url: `/product-requirement/${id}`,
      method: "patch",
      data: data,
    });
  },
  deleteSelfProduct(id: string) {
    return request({
      url: `/product-requirement/${id}`,
      method: "delete",
    });
  },
};
